import { defineStore } from 'pinia'

export const useNewFriendStore = defineStore('newFriend', {
  state: () => {
    return {
      newFriend: []
    }
  },
  getters: {
    // getInfo:(state) => state.userInfo
  },
  actions: {
    getNewFriend() {
      return this.newFriend.slice().sort((a, b) => {
        return b.applyTime - a.applyTime
      })
    },
    setNewFriend(newFriend) {
      this.newFriend = newFriend
    },
    addNewFriend(newFriend) {
      // 检查是否已存在相同 ID 的好友请求
      const exists = this.newFriend.some((friend) => friend.sendUserId === newFriend.sendUserId)
      if (!exists) {
        this.newFriend.push(newFriend)
      }
    }
  },
  persist: true // 全部使用默认配置 将数据持久化到localStorage
  // persist: {  //  persist 属性来配置持久化
  //   enabled: true,
  //   strategies: [
  //     {
  //       key: 'piniaStore', //存储名称
  //       storage: sessionStorage, // 存储方式
  //       paths: ['newFriend'], //指定 state 中哪些数据需要被持久化。[] 表示不持久化任何状态，undefined 或 null 表示持久化整个 state
  //     },
  //   ],
  // },
})

/**
 * 使用方法
 * 1.创建对象  useUserInfoStore = useUserInfoStore()
 * 2. 获取属性  useUserInfoStore.userInfo
 * 3. 获取计算属性   useUserInfoStore.getInfo
 * 4. 设置属性  useUserInfoStore.setInfo(userInfo)
 * 5. 结构 创建响应式 属性 const {name,age} = storeToRefs(userStore)   import {storeToRefs} from 'pinia'
 * 5. 结构 创建响应式 属性 const {name,age} = toRefs(userStore)   import {toRefs} from 'vue'
 *
 *
 */

/**
 * persist 文档参考 https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/
 */
